package tk.wasdennnoch.androidn_ify.utils;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.SystemProperties;
import android.preference.PreferenceManager;
import com.crossbowffs.remotepreferences.RemotePreferences;
import de.robv.android.xposed.XSharedPreferences;
import de.robv.android.xposed.XposedHelpers;
import tk.wasdennnoch.androidn_ify.systemui.notifications.StatusBarHeaderHooks;
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
public class RomUtils {
private static SharedPreferences sPrefs;
// Init from UI
public static void init(Context context) {
sPrefs = PreferenceManager.getDefaultSharedPreferences(context);
checkRom();
}
// Init from Xposed
public static void init(XSharedPreferences prefs) {
sPrefs = prefs;
isOneplusStock();
}
public static void initRemote() {
Context context = (Context) XposedHelpers.callMethod(XposedHelpers.callStaticMethod(XposedHelpers.findClass("android.app.ActivityThread", null), "currentActivityThread"), "getSystemContext");
sPrefs = new RemotePreferences(context, "tk.wasdennnoch.androidn_ify.PREFERENCES", "tk.wasdennnoch.androidn_ify_preferences");
}
// Call only from UI
@SuppressLint("CommitPrefEdits")
private static void checkRom() {
if (sPrefs.contains("rom")) return;
String aicpVersion = SystemProperties.get("ro.aicp.version", "");
if (!aicpVersion.equals("")) {
sPrefs.edit().putString("rom", "aicp").commit();
return;
}
int cmSdkVersion = SystemProperties.getInt("ro.cm.build.version.plat.sdk", 0);
if (cmSdkVersion != 0) {
sPrefs.edit().putString("rom", "cm").commit();
return;
}
sPrefs.edit().putString("rom", "aosp").commit();
}
public static boolean isCm() {
return StatusBarHeaderHooks.mUseDragPanel;
}
public static boolean isAicp() {
return sPrefs.getString("rom", "").equals("aicp");
}
public static boolean isOneplusStock() {
return SystemProperties.get("ro.oxygen.version", "").contains("3.5") || SystemProperties.get("ro.rom.version", "").contains("H2OS V2.5") || SystemProperties.get("ro.oxygen.version", "").contains("O2_Open") || SystemProperties.get("ro.rom.version", "").contains("H2_Open");
}
public static boolean isCmBased() {
String rom = sPrefs.getString("rom", "");
switch (rom) {
case "aicp":
case "cm":
return true;
default:
return false;
}
}
}